
//将返回的json数据调整为表格所需的数据格式, bootstrap table渲染数据格式{total:xx,rows:[]}
// res为服务器返回的数据
function responseHandler(res) {
    console.log(res);
    var datas=[];
    datas.push({total:res.data.total,rows:res.data.list});
    return datas[0];
}

//动态生成操作区域的的按钮
// row.id为每行数据的主键
function opFormatter(value, row, index) {
    var actions=[];
    actions.push('<div class="btn-group btn-group-justified">');
    if(row.authority=="ROLE_user"){
        actions.push('<a class="btn btn-info btn-sm" href="javascript:void(0)"' +
            ' onclick="upAuthority(\''+row.id+'\')">' +
            '<i class="fa fa-user-secret"></i>设为管理员</a>');
    }
    actions.push('</div>');
    return actions.join('');
}

function upAuthority(id) {
    $.ajax({
        url: "/user/upauthority/" + id,
        type: "post",
        success: function (res) {
            alert("升职成功");
            window.location.reload();
        },
        error: function () {
            alert("请求失败")
        }
    })
}

// 显示当前记录的位置
function idSeqFormatter(value, row, index) {
    //获取当前页面大小以及当前页面
    var options = $('#table').bootstrapTable('getOptions');
    // 返回每条的序号： 每页条数 *（当前页 - 1 ）+ 序号
    return options.pageSize * (options.pageNumber - 1) + index + 1;
}

//定义表格列与json数据字段的对应关系
var columns = [{
    checkbox: true
},
    {
        title: '序号',
        formatter: function (value, row, index) {
            return index + 1;
        }

    },
    {
        field: 'id',
        title: '用户id',
        sortable: true

    },
    {
        field: 'username',
        title: '用户名',
        sortable: true

    },
    {
        field: 'authority',
        title: '用户权限',
        sortable: true,
        formatter: function (value, row, index) { //格式化输出
            if(row.authority=="ROLE_admin"){return '管理员';}
            if(row.authority=="ROLE_user"){return '普通用户';}
        }
    },
    {
        title: '操作',
        align: 'center',
        formatter: opFormatter
    }
];

//和后台交互的查询参数对象
function queryParams(params) {
    var params = {
        pageSize: params.limit,                         //页面大小
        pageNum: (params.offset / params.limit) + 1,   //页码
        orderColumn: params.sort,        //排序列名
        sortOrder: params.order    //排序命令（desc，asc）
    };
    params['keyword'] = "test";  // 传入查询分页中的关键词或者查询对象
    console.log(params);
    return params;
}

//获取table对象
var table = $('#table');
$(function () {
    var prefix = "";
    //定义表格的相关属性
    var options = {
        //  locale: $('#locale').val(),
        height: 500,    //表格高度
        pagination: true,  // 启动分页
        sortable: true,   //启动排序
        pageList: "[10, 20, 50, All]",  //每页显示的数量
        pageSize: 7,    //默认每页的记录数
        striped: true,   //间隔显示颜色
        url: "/user/authoritylist",
        //methods:get ,
        responseHandler: responseHandler,  //处理服务器返回的数据格式
        sidePagination: 'server',  //服务器分页则修改为server
        clickToSelect: true,     //单击行进行选择
        multipleSelectRow: true,   //允许多选
        pageNumber: 1,            //默认页面为第一页
        queryParams: queryParams,  //与服务器交互的查询参数
        theadClasses: 'thead-light', //设置表头样式，thead-light,thead-dark,''
        columns: columns           //设置每列的字段内容
    }
    table.bootstrapTable('destroy').bootstrapTable(options);
    //$('#table').init(options);//初始化表格

});